Platform Explorer / Nuxeo Platform LTS 2017 9.10

Component org.nuxeo.search.ui.contentviews

Contributions

XML Source

<?xml version="1.0"?>
<component name="org.nuxeo.search.ui.contentviews">

  <extension target="org.nuxeo.ecm.platform.ui.web.ContentViewService"
    point="contentViews">

    <contentView name="default_search">
      <title>label.search.default</title>
      <translateTitle>true</translateTitle>
      <showTitle>false</showTitle>
      <emptySentence>label.content.empty.search</emptySentence>
      <translateEmptySentence>true</translateEmptySentence>

      <pageProvider name="default_search">
        <property name="coreSession">#{documentManager}</property>
        <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
      </pageProvider>

      <searchLayout name="default_search_layout" />
      <waitForExecution>false</waitForExecution>
      <waitForExecutionSentence>
        label.search.waitForExecution
      </waitForExecutionSentence>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>false</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
      </refresh>
      <cacheKey>only_one_cache</cacheKey>
      <cacheSize>1</cacheSize>

      <resultLayouts>
        <layout name="document_listing_thumbnail" title="document_thumbnail_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon_2_columns_icon.png"
          showSlideshow="true" showEditRows="true" />
        <layout name="document_listing_table" title="document_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon.png"
          showCSVExport="true" showSpreadsheet="true" showEditColumns="true" />
      </resultLayouts>

      <selectionList>CURRENT_SELECTION</selectionList>
      <actions category="CURRENT_SELECTION_LIST" />

      <resultColumns>
        #{searchDocument.cvd.selectedLayoutColumns}
      </resultColumns>

      <resultLayout>
        #{searchDocument.cvd.resultLayoutName}
      </resultLayout>

      <flags>
        <flag>SEARCH</flag>
      </flags>
    </contentView>

    <contentView name="simple_search">

      <title>label.search.form.simple</title>
      <translateTitle>true</translateTitle>
      <showTitle>false</showTitle>
      <iconPath>/icons/document_listing_icon.png</iconPath>

      <emptySentence>label.content.empty.search</emptySentence>
      <translateEmptySentence>true</translateEmptySentence>

      <pageProvider name="simple_search">
        <property name="coreSession">#{documentManager}</property>
        <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
      </pageProvider>

      <searchLayout name="simple_search_layout" />
      <waitForExecution>true</waitForExecution>
      <waitForExecutionSentence>
        label.search.waitForExecution
      </waitForExecutionSentence>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>true</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
      </refresh>
      <cacheKey>only_one_cache</cacheKey>
      <cacheSize>1</cacheSize>

      <resultLayouts>
        <layout name="document_listing_thumbnail" title="document_thumbnail_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon_2_columns_icon.png"
          showSlideshow="true" showEditRows="true" />
        <layout name="document_listing_table" title="document_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon.png"
          showCSVExport="true" showSpreadsheet="true" showEditColumns="true" />
      </resultLayouts>

      <resultColumns>
        #{searchDocument.cvd.selectedLayoutColumns}
      </resultColumns>

      <resultLayout>
        #{searchDocument.cvd.resultLayoutName}
      </resultLayout>

      <selectionList>CURRENT_SELECTION</selectionList>
      <actions category="CURRENT_SELECTION_LIST" />

    </contentView>

    <contentView name="nxql_search">

      <title>label.search.nxql</title>
      <translateTitle>true</translateTitle>
      <showTitle>false</showTitle>
      <emptySentence>label.content.empty.search</emptySentence>
      <translateEmptySentence>true</translateEmptySentence>

      <pageProvider name="nxql_search">
        <property name="coreSession">#{documentManager}</property>
        <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
        <parameter>#{searchUIActions.nxqlQuery}</parameter>
      </pageProvider>

      <waitForExecution>true</waitForExecution>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>true</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
      </refresh>
      <cacheKey>only_one_cache</cacheKey>
      <cacheSize>1</cacheSize>

      <resultLayouts>
        <layout name="document_listing_thumbnail" title="document_thumbnail_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon_2_columns_icon.png"
          showSlideshow="true" showEditRows="true" />
        <layout name="document_listing_table" title="document_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon.png"
          showCSVExport="true" showSpreadsheet="true" showEditColumns="true" />
      </resultLayouts>

      <selectionList>CURRENT_SELECTION</selectionList>
      <actions category="CURRENT_SELECTION_LIST" />

    </contentView>

    <contentView name="all_saved_searches">

      <showTitle>false</showTitle>

      <coreQueryPageProvider>
        <property name="coreSession">#{documentManager}</property>
        <whereClause docType="AdvancedSearch">
          <predicate parameter="ecm:fulltext" operator="FULLTEXT">
            <field schema="advanced_search" name="fulltext_all" />
          </predicate>
          <predicate parameter="dc:title" operator="FULLTEXT">
            <field schema="advanced_search" name="title" />
          </predicate>
          <predicate parameter="dc:modified" operator="BETWEEN">
            <field schema="advanced_search" name="modified_min" />
            <field schema="advanced_search" name="modified_max" />
          </predicate>
          <fixedPart>
            ecm:mixinType = 'SavedSearch'
            AND cvd:contentViewName IS NOT NULL
            AND ecm:isProxy = 0 AND
            ecm:isCheckedInVersion = 0
            AND ecm:currentLifeCycleState != 'deleted'
            AND ecm:parentId = ?
            AND SORTED_COLUMN IS NOT NULL
          </fixedPart>
        </whereClause>
        <parameter>#{userWorkspaceManagerActions.currentUserPersonalWorkspace.id}</parameter>
        <sort column="dc:title" ascending="true" />
        <pageSize>20</pageSize>
      </coreQueryPageProvider>

      <searchLayout name="document_content_filter"
        filterDisplayType="quick" />
      <showFilterForm>true</showFilterForm>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>false</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
        <event>searchSaved</event>
      </refresh>
      <cacheKey>only_one_cache</cacheKey>
      <cacheSize>1</cacheSize>

      <resultLayouts>
        <layout name="document_listing_table" title="document_listing"
          translateTitle="true" iconPath="/icons/document_listing_icon.png"
          showCSVExport="true" showSpreadsheet="true" showEditColumns="true" />
      </resultLayouts>

      <selectionList>SAVED_SEARCHES_CURRENT_SELECTION</selectionList>
      <actions category="SAVED_SEARCHES_CURRENT_SELECTION_LIST" />
    </contentView>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgets">

    <!-- widgets for default_search -->

    <widget name="default_text_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.search.textSearch</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="ecm_fulltext" type="text">
          <fields>
            <field>defaults:ecm_fulltext</field>
          </fields>
          <properties widgetMode="edit">
            <property name="placeholder">
              #{messages['label.search.text.placeholder']}
            </property>
          </properties>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_modified_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.dublincore.modificationDate</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="dc_modificationDate" type="datetimeRange">
          <fields>
            <field>defaults:dc_modified_min</field>
            <field>defaults:dc_modified_max</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'hidden' : 'edit'}</mode>
          </widgetModes>
          <properties widgetMode="edit">
            <property name="styleClass">dataInputTextDate</property>
            <property name="format">#{nxu:basicDateAndTimeFormatter()}</property>
          </properties>
        </widget>
        <widget name="dc_modified_agg" type="selectManyCheckboxDateRangeAggregate">
          <fields>
            <field>defaults:dc_modified_agg</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'edit' : 'hidden'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="selectOptions">#{contentView.pageProvider.aggregates['dc_modified_agg'].extendedBuckets}</property>
            <property name="localize">true</property>
          </properties>
          <selectOptions>
            <option itemLabel="label.aggregate.modified.last24h"
              itemValue="last24h" />
            <option itemLabel="label.aggregate.modified.lastWeek"
              itemValue="lastWeek" />
            <option itemLabel="label.aggregate.modified.lastMonth"
              itemValue="lastMonth" />
            <option itemLabel="label.aggregate.modified.lastYear"
              itemValue="lastYear" />
            <option itemLabel="label.aggregate.modified.priorToLastYear"
              itemValue="priorToLastYear" />
          </selectOptions>
          <controls mode="any">
            <control name="supportInsideInputWidgetEffects">true</control>
          </controls>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_creator_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.dublincore.creator</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="dc_creator" type="multipleUsersSuggestion">
          <fields>
            <field>defaults:dc_creator</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'hidden' : 'edit'}</mode>
          </widgetModes>
          <properties widgetMode="edit">
            <property name="searchType">USER_TYPE</property>
            <property name="minChars">3</property>
            <property name="hideHelpLabel">true</property>
          </properties>
        </widget>
        <widget name="dc_creator_agg" type="selectManyListboxUserAggregate">
          <fields>
            <field>defaults:dc_creator_agg</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'edit' : 'hidden'}</mode>
          </widgetModes>
          <properties widgetMode="edit">
            <property name="selectOptions">#{contentView.pageProvider.aggregates['dc_creator_agg'].extendedBuckets}</property>
          </properties>
          <controls mode="any">
            <control name="supportInsideInputWidgetEffects">true</control>
          </controls>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_collection_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.collections</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="visible_collection" type="multipleDocumentsSuggestion">
          <fields>
            <field>defaults:ecm_collections</field>
          </fields>
          <properties widgetMode="any">
            <property name="minChars">0</property>
            <property name="hideHelpLabel">true</property>
            <property name="pageProviderName">default_collection</property>
            <property name="suggestionFormatter">docSelectionDefaultFormatter</property>
          </properties>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_nature_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.dublincore.nature</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="dc_nature" type="suggestManyDirectory">
          <fields>
            <field>defaults:dc_nature</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'hidden' : 'edit'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="width">100%</property>
            <property name="minChars">0</property>
            <property name="hideHelpLabel">true</property>
            <property name="directoryName">nature</property>
            <property name="localize">true</property>
          </properties>
        </widget>
        <widget name="dc_nature_agg" type="selectManyCheckboxDirectoryAggregate">
          <fields>
            <field>defaults:dc_nature_agg</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'edit' : 'hidden'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="directoryName">nature</property>
            <property name="selectOptions">#{contentView.pageProvider.aggregates['dc_nature_agg'].extendedBuckets}</property>
            <property name="localize">true</property>
          </properties>
          <controls mode="any">
            <control name="supportInsideInputWidgetEffects">true</control>
          </controls>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_subjects_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.dublincore.subject</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="dc_subjects" type="suggestManyDirectory">
          <fields>
            <field>defaults:dc_subjects</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'hidden' : 'edit'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="directoryName">l10nsubjects</property>
            <property name="dbl10n">true</property>
            <property name="minChars">0</property>
            <property name="hideHelpLabel">true</property>
            <property name="filterParent">true</property>
            <property name="canSelectParent">true</property>
          </properties>
        </widget>
        <widget name="dc_subjects_agg" type="selectManyCheckboxDirectoryAggregate">
          <fields>
            <field>defaults:dc_subjects_agg</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'edit' : 'hidden'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="directoryName">l10nsubjects</property>
            <property name="selectOptions">#{contentView.pageProvider.aggregates['dc_subjects_agg'].extendedBuckets}</property>
            <property name="dbl10n">true</property>
            <property name="localize">true</property>
          </properties>
          <controls mode="any">
            <control name="supportInsideInputWidgetEffects">true</control>
          </controls>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_coverage_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.dublincore.coverage</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="dc_coverage" type="suggestManyDirectory">
          <fields>
            <field>defaults:dc_coverage</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'hidden' : 'edit'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="directoryName">l10ncoverage</property>
            <property name="dbl10n">true</property>
            <property name="minChars">0</property>
            <property name="hideHelpLabel">true</property>
            <property name="filterParent">true</property>
            <property name="canSelectParent">true</property>
          </properties>
        </widget>
        <widget name="dc_coverage_agg" type="selectManyCheckboxDirectoryAggregate">
          <fields>
            <field>defaults:dc_coverage_agg</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'edit' : 'hidden'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="directoryName">l10ncoverage</property>
            <property name="selectOptions">#{contentView.pageProvider.aggregates['dc_coverage_agg'].extendedBuckets}</property>
            <property name="dbl10n">true</property>
            <property name="localize">true</property>
          </properties>
          <controls mode="any">
            <control name="supportInsideInputWidgetEffects">true</control>
          </controls>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_size_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.common.size</label>
      </labels>
      <translated>true</translated>
      <widgetModes>
        <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
          'edit' : 'hidden'}</mode>
      </widgetModes>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="common_size_agg" type="selectManyCheckboxRangeAggregate">
          <fields>
            <field>defaults:common_size_agg</field>
          </fields>
          <widgetModes>
            <mode value="edit">#{contentView.pageProvider.hasAggregateSupport() ?
              'edit' : 'hidden'}</mode>
          </widgetModes>
          <properties widgetMode="any">
            <property name="selectOptions">#{contentView.pageProvider.aggregates['common_size_agg'].extendedBuckets}</property>
            <property name="localize">true</property>
          </properties>
          <selectOptions>
            <option itemLabel="label.aggregate.size.tiny" itemValue="tiny" />
            <option itemLabel="label.aggregate.size.small" itemValue="small" />
            <option itemLabel="label.aggregate.size.medium" itemValue="medium" />
            <option itemLabel="label.aggregate.size.big" itemValue="big" />
            <option itemLabel="label.aggregate.size.huge" itemValue="huge" />
          </selectOptions>
          <controls mode="any">
            <control name="supportInsideInputWidgetEffects">true</control>
          </controls>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_location_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.search.locationSearch</label>
      </labels>
      <translated>true</translated>
      <subWidgets>
        <widget name="ecm_path" type="select_path_tree">
          <labels>
            <label mode="any">label.search.path</label>
          </labels>
          <translated>true</translated>
          <fields>
            <field>defaults:ecm_path</field>
          </fields>
          <properties widgetMode="any">
            <property name="showAllDomains">true</property>
          </properties>
        </widget>
      </subWidgets>
    </widget>

    <widget name="default_tags_search" type="container">
      <handlingLabels>true</handlingLabels>
      <labels>
        <label mode="any">label.search.tagSearch</label>
      </labels>
      <translated>true</translated>
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="tags" type="select_tags">
          <labels>
            <label mode="any"></label>
          </labels>
          <translated>true</translated>
          <fields>
            <field>defaults:ecm_tags</field>
          </fields>
          <properties widgetMode="edit">
            <property name="placeholder">
              #{messages['label.search.tags.placeholder']}
            </property>
          </properties>
        </widget>
      </subWidgets>
    </widget>

    <widget name="listing_size_and_format" type="container">
      <labels>
        <label mode="any">label.search.size_and_format</label>
      </labels>
      <properties widgetMode="view">
        <property name="display">inline</property>
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgetRefs>
        <widget>listing_size</widget>
        <widget>listing_main_file_format</widget>
      </subWidgetRefs>
    </widget>

    <widget name="listing_size" type="listing_main_file_size">
      <labels>
        <label mode="any"></label>
      </labels>
      <translated>false</translated>
      <fields>
        <field>data</field>
      </fields>
    </widget>

    <widget name="listing_main_file_format" type="listing_main_file_format">
      <labels>
        <label mode="any"></label>
      </labels>
      <translated>false</translated>
      <fields>
        <field>data</field>
      </fields>
    </widget>

    <widget name="content_view_selected_columns" type="layout">
      <labels>
        <label mode="any">label.search.results</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>cvd:selectedLayoutColumns</field>
      </fields>
      <properties widgetMode="edit">
        <property name="name">search_listing_ajax</property>
        <property name="mode">edit_columns</property>
        <property name="selectAllByDefault">true</property>
        <property name="required">true</property>
      </properties>
      <widgetModes>
        <mode value="view">hidden</mode>
      </widgetModes>
    </widget>

    <widget name="content_view_sort_infos" type="layout">
      <labels>
        <label mode="any">label.search.orderBy</label>
      </labels>
      <fields>
        <field>cvd:sortInfos</field>
      </fields>
      <translated>true</translated>
      <properties widgetMode="edit">
        <property name="name">search_listing_ajax</property>
        <property name="mode">edit_sort_infos_map</property>
        <property name="selectAllByDefault">true</property>
        <property name="required">false</property>
        <property name="newSortInfoTemplate">#{documentSearchActions.newSortInfoMap}</property>
      </properties>
      <widgetModes>
        <mode value="view">hidden</mode>
      </widgetModes>
    </widget>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">

    <layout name="content_view_display">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>content_view_selected_columns</widget>
        </row>
        <row>
          <widget>content_view_sort_infos</widget>
        </row>
      </rows>
    </layout>

    <layout name="default_search_layout">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>default_text_search</widget>
        </row>
        <row>
          <widget>default_tags_search</widget>
        </row>
        <row>
          <widget>default_modified_search</widget>
        </row>
        <row>
          <widget>default_creator_search</widget>
        </row>
        <row>
          <widget>default_collection_search</widget>
        </row>
        <row>
          <widget>default_nature_search</widget>
        </row>
        <row>
          <widget>default_subjects_search</widget>
        </row>
        <row>
          <widget>default_coverage_search</widget>
        </row>
        <row>
          <widget>default_size_search</widget>
        </row>
        <row>
          <widget>default_location_search</widget>
        </row>
      </rows>
    </layout>

    <layout name="simple_search_layout">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>default_text_search</widget>
        </row>
      </rows>
    </layout>

  </extension>

</component>